package com.ls.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ls.server.domain.ChatSession;
import com.ls.server.dto.ChatQueryDTO;
import com.ls.server.dto.ChatSessionDTO;
import com.ls.server.vo.ChatSessionVO;
import com.ls.server.vo.PageResult;

import java.util.List;

/**
 * 聊天会话Service接口
 */
public interface ChatSessionService extends IService<ChatSession> {

    /**
     * 分页查询会话
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult<ChatSessionVO> page(ChatQueryDTO queryDTO);

    /**
     * 获取用户的聊天会话列表
     *
     * @param userId 用户ID
     * @return 聊天会话列表
     */
    List<ChatSessionVO> listUserSessions(Long userId);

    /**
     * 根据会话ID获取会话信息
     *
     * @param sessionId 会话ID
     * @return 会话信息
     */
    ChatSessionVO getSessionById(String sessionId);

    /**
     * 创建聊天会话
     *
     * @param dto 会话信息
     * @return 会话ID
     */
    String createSession(ChatSessionDTO dto);

    /**
     * 更新会话信息
     *
     * @param dto 会话信息
     * @return 更新结果
     */
    boolean updateSession(ChatSessionDTO dto);

    /**
     * 删除会话
     *
     * @param sessionId 会话ID
     * @return 删除结果
     */
    boolean deleteSession(String sessionId);

    /**
     * 更新会话最后一条消息
     *
     * @param sessionId 会话ID
     * @param message 消息内容
     * @return 更新结果
     */
    boolean updateLastMessage(String sessionId, String message);
} 